package com.zzh.dao.impl;

import com.zzh.dao.ChatHistoryDao;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component//将当前类交给spring管理
public class ChatHistoryDaoImpl implements ChatHistoryDao {
    //  模拟数据库
    //key代表业务类型，value代表该业务类型下的历史会话ID
    private Map<String,List<String>> map = new HashMap<>();
    @Override
    public void save(String type, String chatId) {
        /*
        1.判断type是否已经存储在map中
        2.如果type不存在，则需要创建一个新的List<String>，然后吧chatId添加到List中，最后type->List 存储到map中
        3.如果type已经存在，则根据type把集合List拿出来，然后把chatId添加到List中（注意不要重复），最后更新type->List 存储到map中
         */
        if(map.containsKey(type)){//如果map中已经存在type
            List<String> list = map.get(type);
            if(!list.contains(chatId)){
                list.add(chatId);
            }

        }else {//map中不存在type
            List<String> list = new ArrayList<>();
            list.add(chatId);
            //保存到map中
            map.put(type,list);
        }

    }
    @Override
    public List<String> getChatHistory(String type) {
        List<String> list = map.get(type);
        if (list == null){
            list = new ArrayList<>();
        }
        return list;
    }
}
